function Log(elemId) {

	var elem = document.getElementById(elemId);

	this.show = function(msg) {
	   elem.innerHTML = msg;
	}

	this.add = function(msg) {
		if (!msg) msg = '';
		elem.innerHTML = elem.innerHTML + msg + '<br>';
	}

	this.radd = function(msg) {
		if (!msg) msg = '';
		elem.innerHTML = msg + '<br>' + elem.innerHTML;
	}

	this.clear = function() {
		elem.innerHTML = '';
	}

	return this;
}


function TimedLog(elemId) {

    var log = new Log(elemId);

    this.show = function(msg) { log.show(TimedLog.getTimePrefix() + msg) }
    this.add  = function(msg) { log.add(TimedLog.getTimePrefix() + msg) }
    this.radd = function(msg) { log.radd(TimedLog.getTimePrefix() + msg) }
    this.clear = function()   { log.clear() }

    return this;
}

TimedLog.getTimePrefix = function() {
    var dt = new Date();
    return dt.toLocaleTimeString() + ' - ';
}
